//	2019‎年‎10‎月‎27‎日
//	function-1.0.js


//完美运动函数的封装
function move(ele,json,fn){//参数1：元素；参数2:JSON格式属性；参数3：回调函数
	clearInterval(ele.timer);
	ele.timer=setInterval(function(){
		var onOff = true;
		for(var attr in json){
			if (attr == "opacity") {
				var ic = parseFloat(getStyle(ele,attr))*100;
			}else{
				var ic = parseInt(getStyle(ele,attr));
			}
			var speed = (json[attr]-ic)/10;
			speed = speed > 0 ? Math.ceil(speed):Math.floor(speed);
			ic+=speed;
			if (attr == "opacity") {
				ele.style[attr]=ic/100;
				ele.style.filter = "alpha(opacity="+ic+")";
			}else{
				ele.style[attr]=ic+"px";
			}
			if (json[attr]!=ic) {
				onOff = false;
			}
		}
		if (onOff) {
			clearInterval(ele.timer);
			fn&&fn();
		}
	},20)
}

//获取css样式的方法
function getStyle(ele,attr){//参数1：元素；参数2：css的属性
	return ele.currentStyle?ele.currentStyle[attr]:getComputedStyle(ele)[attr];
}



//ajax GET请求方法
function GET(url,data,fn){//参数1：路径、地址；参数2：传入的接口；参数3：调用函数
	var xhr = new XMLHttpRequest();
	xhr.open("get",url+"?"+data,true);
	xhr.onreadystatechange=function(){
		if (xhr.readyState==4&&xhr.status==200) {
			var d = xhr.responseText;
			fn(d);
		}
	}
	xhr.send();
}


//ajax POST请求方法
function POST(url,data,fn){//参数1：路径、地址；参数2：传入的接口；参数3：调用函数
	var xhr = new XMLHttpRequest();
	xhr.open("post",url,true);
	xhr.onreadystatechange=function(){
		if (xhr.readyState==4&&xhr.status==200) {
			var d = xhr.responseText;
			fn(d);
		}
	}
	xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")
	xhr.send(data);
}


//	2019‎年‎10‎月‎30‎日
//	function-1.1.js


//ajax通用函数
function ajax(method,url,data,fn){//参数1：传输方式；参数2：路径、地址；参数3：需要导入的参数、接口；参数4：调用函数；
	var xhr=null;
	try{
		//在try里面发生错误，不会执行错误后的try里面的代码
		xhr = new XMLHttpRequest();
	}catch(err){
		xhr = new ActiveXObject("Microsoft.XMLHTTP")
	}
	if (method=="get"&&data){
		url=url+"?"+data+"&t="+new Date().getTime();
	}else if(method=="get"&&data==""){
		url=url+"?t="+new Date().getTime();
	}
	xhr.open(method,url,true);//true  表示异步传输
	xhr.onreadystatechange=function(){
		if(xhr.readyState==4&&xhr.status==200){
			var d = xhr.responseText;
			fn(d);
		}
	}
	if (method=="post"){
		xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
		xhr.send(data);
	}else{
		xhr.send();
	}
}




//获取cookie中某个信息
function getCookie(n){//参数1：键名；
	var cookie = document.cookie;//获取所有的cookie值
	var arr = cookie.split("; ");//将获取到的cookie用   “; ”  分割开  ["user=dd",……]
	for (var i = 0;i<arr.length ;i++ ){
		var arr1 = arr[i].split("=");//在进行分割  得到 ["user","dd"]……
		if (arr1[0]==n){//如果找到键名   
			return arr1[1];//返回该键名的值
		}
	}
	return -1;//如果没找到  返回-1   ==  false
}


//设置、添加cookie信息
function setCookie(n,v,t){//参数1：键名；参数2：键的值；参数3：存放的时间；
	var d = new Date();
	d.setDate(d.getDate()+t)
	document.cookie = n+"="+v+";expires="+d;
}


//删除cookie中某个键值对
function removeCookie(n){//参数1：键名；
	setCookie(n,"",-1);//存放时间为-1 为删除此cookie
}


//2019/10/31
//function-1.2.js



//放大镜封装
function Zoom(move,small,bPic,big){//参数1:滑块元素;参数2:滑块父级盒子元素;参数3:大图元素;参数4:大图父级盒子元素
	var moveW = big.clientWidth/bPic.clientWidth*small.clientWidth;
	var moveH = big.clientHeight/bPic.clientHeight*small.clientHeight;
	move.style.width=moveW+"px";
	move.style.height=moveH+"px";
	move.style.display="none";
	big.style.display="none";
	small.onmouseover=function(){
		big.style.display="block";
		move.style.display="block";
	}
	small.onmouseout=function(){
		big.style.display="none";
		move.style.display="none";
	}
	small.onmousemove=function(ev){
		var xBS = bPic.offsetWidth/small.offsetWidth;
		var yBS = bPic.offsetHeight/small.offsetHeight;
		var e = ev || window.event;
		var x = e.pageX-parseInt(getStyle(small,"margin-left")) - move.offsetWidth/2;
		var y = e.pageY-parseInt(getStyle(small,"margin")) - move.offsetHeight/2;
		var maxX = small.offsetWidth - move.offsetWidth;
		var maxY = small.offsetHeight - move.offsetHeight;
		if (x<0) {x=0}else if(x>maxX){x=maxX};
		if (y<0) {y=0}else if(y>maxY){y=maxY};
		move.style.left=x+"px";
		move.style.top=y+"px";
		bPic.style.left=-(x*xBS)+"px";
		bPic.style.top=-(y*yBS)+"px";
	}
}

//二级事件兼容
function on(ele,type,fn){//参数1：元素；参数2：事件类型；参数3：事件执行方法；
	if (ele.addEventListener){//标准浏览器事件
		ele.addEventListener(type,fn,false)
	}else{
		ele.attachEvent("on"+type,function(){//默认指向window
			fn.call(ele)//改变this指向
		})
	}
}